1. Field of the Invention
The present invention relates generally to digital and software piracy. More particularly, the present invention relates to a system and a method for authentication to prevent piracy in a digital system.
2. Description of the Related Art
The piracy and illegal copying of software and other digital media has become extremely pervasive and currently results in billions of dollars in lost revenue for media and software owners worldwide. This problem is compounded by the advent of faster and more technologically advanced computers, the development of inexpensive mass storage media (i.e. CDs, DVDs), as well as copying devices such as CD writers, which aid in various aspects of digital piracy.
Each technological breakthrough seemingly results in a new and better way to illegally copy intellectual property belonging to another. Examples of digital piracy include: the copying of proprietary software to sell to others, the installing of a single proprietary software package on several different systems, placing a copy of proprietary software on the Internet, or even downloading copyrighted images from the Internet.
While digital piracy is fairly common among many end users who have lawfully purchased the software, large-scale piracy typically occurs at a reseller level. For instance, a reseller may duplicate and distribute multiple copies of a software program, a digital audio file or a digital video file to different customers. These counterfeit versions are sometimes passed on to unsuspecting customers. Hardware distributors have been known to preload different systems using a single software package. In such instances, customers are either not provided with original manuals, diskettes and/or compact discs (CDs) or are simply supplied with pirated copies of the same.
Numerous methods to combat the rampant problem of digital piracy have been devised. One of the methods is the use of trialware to restrict usage of a software product. Trialware may be implemented by either programming an expiration date or a usage counter into a software program. Such a scheme limits the use of a software product to a particular duration or a number of trial times, respectively, after which the protected application can no longer be launched. Users are then forced to either purchase the full version of the product or to quit using it altogether.
Hardware keys are another type of anti-piracy device that is commonly used to prevent illegal use of software. Hardware keys are devices that are plugged into selected ports of a computer. Once the software is executed, it then detects the presence of a hardware key in a similar manner to detecting other hardware devices (such as a printer, monitor or a mouse). Programming the software such that it only operates when an appropriate hardware key is attached prevents illegal use of the software. As the number of hardware keys distributed to end users correspond to the number of seat licenses purchased, the software will not work when installed on another system without the requisite hardware key.
Another common anti-piracy technique is to require the entry of a certain registration key that is supplied by the software company before the software can be installed. Traditionally, the registration keys are given only with the original software package, although some are issued electronically. Unfortunately, there is nothing to prevent the holder of the registration key from installing the software on multiple systems. In addition, many of the electronic registration keys are based on the user's personal information (i.e. such as the user's name), therefore, some hackers have developed programs to calculate registration keys for random names.
Unfortunately, as with the use of the registration key, all of the above anti-piracy systems (and many others) are easily circumvented by hackers. A common method of combating these anti-piracy techniques is to disassemble the coding of the Application Programming Interface (API) to assembly language and, thereafter, decompile the assembly language into programming language. With the knowledge gained from the program flow, the hacker can easily re-write the program or set certain conditions within the program itself, such that it bypasses all the anti-piracy authentication algorithms.
In view of the foregoing, it is extremely desirable to have an anti-piracy system that cannot be easily re-programmed or bypassed by computer hackers and other digital pirates. It is also desirable to have an anti-piracy system that can be integrated with existing mass storage devices.